GitHub: Collaboration and Dissemination



👤Ondřej Mottl

05.06.2025

Technická univerzita Ostrava

🙋Hi! I am Ondřej Mottl


Assistant Professor at Charles University

Head of 🧑‍💻Laboratory of Quantitative Ecology


Fast & Furious


This presentation



😸Code on GitHub: OndrejMottl/VersionControl_DataStewards_June2025

🖼️Slides: bit.ly/mottl_prez_20250605


Evolution

Collaboration

Repeat

What do you remember?

Project self-containment

Git vs GitHub

Git

  • local software
  • keep track of changes of files

GitHub

  • host server
  • store (git) the data
  • project management, collaboration, publishing

Basic vocabulary

  • Project is self contained project/study/paper containg R scripts, data, figures, etc.
  • Every such project is called repository (ie a repo)
  • commit is a record of changes in the repository
  • Your local repository is called local
  • Your online repository, is called remote




Branches

Pull Requests (merging branches)

Note on practical exercises

The whole game


flowchart LR
    subgraph Project
      direction TB
    subgraph Workflow
      direction LR
      A3(["make a branch"]) ==> A4(["make commits"])
      A4 ==> A5(["make A PR"])
      A5 ==> A6(["review PR"])
      A6 ==> A7(["merge PR"])
      A7 ==> A8(["delete branch"])
      A8 -.-> A3
    end
    A1(["new repo"]) --> A2(["Clone it"])
    A2 --> Workflow
    end

Your turn?


  1. Make a new GH repository
  2. Clone the repository to your local computer
  3. Make a new branch
  4. Make a change in the branch
  5. Commit the change
  6. Make a pull request
  7. Merge the pull request
  8. Delete the branch

05:00

Collaboration

Collaboration types

There is more …

Collaboration forms


Let’s talk about it

GitHub Discussions are project-specific space for communication on GitHub.

Note on Markdown

You can use Markdown on GitHub in the description and comments

More details on Github Docs

Practical Exercise


  1. Post a question in the Discussions of your repository
  2. Answer a question in the Discussions at VersionControl-Playground

15:00

Working together on a repo

Practical Exercise


  1. Add someone as a collaborator to your repo
  2. Remove the collaborator

05:00

Teams

For organisations, Github allows you to specify roles and permissions of your repo.

Roles (permissions)

Task Management

Tasks management

Tasks management tools

Jory MacKay

A … task management tool … is your best friend when it comes to organizing, assigning, tracking, and reporting on tasks.

Tasks management tools

There are many tools for task management!!!

Google Keep

GitHub tools suite


Issue (a task) on GitHub

Original purpose of GitHub Issues is to track bugs & feature requests in software developmen projects🧑‍💻.

However, We can highjack it for any kind of task management🦹.


Issue (a task) on GitHub

Issues - space for communication

Splitting tasks

You can split tasks into subtasks and checklists.

This allow to track progress more granularly.

Issues - Assign

Practical Exercise


  1. Create an 3 issus on your repo
  2. Comment on the issues
  3. Create a higher-level task with subtasks (checklist)
  4. Assign the tasks to someone

05:00

Labels

You can use labels to categorize tasks.

Labels

Be crateative! You can create your own labels based on:

  • priority
  • type
  • status

Practical Exercise


  1. Create 3 new labels in your repo
  2. Assign the labels to the issues

05:00

Practical Exercise


  1. Create a new PR in your repo
  2. Link it to one of the issues
  3. Merge the PR
  4. Check if the issue is closed

10:00

Making a plan

Tracking progress - Milestones

Tracking progress - Milestones

Tracking progress - Milestones

You can create a Milestone for:

  • Time frame - “2024-10-12”, “Conference XY”, …
  • Goal - “Methodology refactor”, “paper submission”, …
  • General topic - “Data cleaning”, “Data analysis”, …

Practical Exercise


  1. Create a new Milestone in your repo
  2. Assign the issues to the Milestone

15:00

Project Management

GitHub Projects

GitHub Projects

You can organise your Issues and Pull Requests in Projects.

GitHub Projects

You can customise the columns in Projects with:

  • Labels
  • Linked Pull Requests
  • Milestones

GitHub Projects - custom views

GitHub Projects - custom views

Practical Exercise


  1. Create a new Project in your repo
  2. Assing Issues into the Project
  3. Create a new column
  4. Change the view of the Project

15:00

GitHub Projects

There is so much more you can do with Projects:

  • Automations
  • Road maps

Check the official documentation

Dissemination





GitHub: Collaboration and Dissemination

05.06.2025